import 'package:json_annotation/json_annotation.dart';

part 'BannerEntity.g.dart'; // 1.指定生成的文件，当前文件.g.dart
/// 作者: Tao
/// 日期: 2024/3/18
/// 时间: 15:22
/// 描述: Banner实体
/// 1.part 'BannerEntity.g.dart'; // 1.指定生成的文件，当前文件.g.dart
/// 2.@JsonSerializable(explicitToJson: true) // 2.添加注解，告知此类是要生成Json序列化代码的
/// 3. flutter pub run build_runner build --delete-conflicting-outputs // 3.终端运行命令，生成序列化代码
/// 4.觉得每次都要手动执行生成序列化段命令 麻烦的话 ,flutter packages pub run build_runner watch，会自动监听文件变化，生成序列化代码
@JsonSerializable(explicitToJson: true) // 2.添加注解，告知此类是要生成Json序列化代码的
class BannerEntity {
  @JsonKey(name: 'id') // 通过@JsonKey()注解，指定json字段名
  final int bid;
  final String desc;
  final String imagePath;
  final int isVisible;
  final String title;
  final String url;

  BannerEntity(this.bid, this.desc, this.imagePath, this.isVisible, this.title,
      this.url);

  // 添加工厂方法，将json数据转换为实体类
  factory BannerEntity.fromJson(Map<String, dynamic> json) => _$BannerEntityFromJson(json);

  // 添加toJson方法，将实体类转换为json数据
  Map<String, dynamic> toJson() => _$BannerEntityToJson(this);
}
